package aphorism;

import java.awt.event.ActionEvent;
import java.util.ArrayList;

/**
 * Verwaltet die AphorismItems.
 *
 * @author Patrick Bauer
 * @version 1.0
 */
public class AphorismSelect extends AbstractSelect {
    /**
     * Liste der moeglichen Aphorismen.
     */
    private ArrayList<AphorismItem> aphorismList;


    /**
     * Befuellt die aphorismList mit Elementen, fuegt diese dann der Combobox hinzu
     * <br>
     * und setzt den ActionListener auf die eigene Instanz.
     */
    public AphorismSelect() {
        this.aphorismList = new ArrayList<AphorismItem>();

        this.aphorismList.add(new AphorismItem("Karl Heinz Karius","Auch früher gab es schon ungünstige Zeitpunkte.|Erst der Computer aber macht sie jederzeit verfügbar.|Karl Heinz Karius, (*1935)"));
        this.aphorismList.add(new AphorismItem("Erhard Blanck","Mit dem Computer kann man alles schneller erledigen.|Vor allem Fehler.|Erhard Blanck, (*1942)"));
        this.aphorismList.add(new AphorismItem("Erwin Benz","Computer – früher ging es ohne, heute geht ohne nichts.|Erwin Benz, (*1940)"));
        this.aphorismList.add(new AphorismItem("Onno Ehlers","Ein Computer arbeitet nur mit Nullen und Einsen – aber irgendwie| entsteht oft der Eindruck, es sind mehr Nullen als Einsen am Werk.|Onno Ehlers, (*1969)"));
        this.aphorismList.add(new AphorismItem("Peter F. Keller","Nicht einmal der PC kommt ohne Papierkorb aus.|Peter F. Keller, (*1949)"));
        this.aphorismList.add(new AphorismItem("Hans Seeger","Der Computer informiert uns bis zur Verwirrung.|Hans-Jürgen Quadbeck-Seeger, (*1939)"));
        this.aphorismList.add(new AphorismItem("Manfred Hinrich","Der Computer lacht nicht, nur über mich.|Manfred Hinrich, (*1926)"));
        this.aphorismList.add(new AphorismItem("Willy Meurer","Das Schnellste, was ein Computer macht, ist,|dass er rasend schnell veraltet!|Willy Meurer, (*1934)"));

        for(AphorismItem item: this.aphorismList) {
            this.addItem(item);
        }

        this.addActionListener(this);
    }

    /**
     * Setzt beim aendern der Combobox den gewählten Aphorismus im Stringpanel.
     *
     * @param e uebergebenes Event der Combobox
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        AphorismSelect box = (AphorismSelect) e.getSource();
        AphorismItem item = (AphorismItem) box.getSelectedItem();
        
        if(this.getStringPanel() != null){
            this.getStringPanel().setText(item.getText());
            this.getStringPanel().repaint();
        }
    }

    /**
     * Setzt den ersten Eintrag der Combobox als Default-Parameter des StringPanels.
     */
    @Override
    protected void setDefaultOption() {
        if(this.getStringPanel() != null){
            AphorismItem item = (AphorismItem) this.getItemAt(0);
            this.getStringPanel().setText(item.getText());
            this.getStringPanel().repaint();
        }
    }
    
    
    
}